import json
from pyecharts.charts import Line
from pyecharts.options import TitleOpts, LabelOpts, AxisOpts, AxisLineOpts
#处理数据

f_us = open("E:\\py代码\\美国.txt", "r", encoding="utf-8")
us_data = f_us.read() #美国的全部内容

f_jp = open("E:\\py代码\\日本.txt", "r", encoding="utf-8")
jp_data = f_jp.read() #日本的全部内容

f_in = open("E:\\py代码\\印度.txt", "r", encoding="utf-8")
in_data = f_in.read() #美国的全部内容

#去掉不合规范的JSON开头
us_data = us_data.replace("jsonp_1629344292311_69436(","")
jp_data = jp_data.replace("jsonp_1629350871167_29498(","")
in_data = in_data.replace("jsonp_1629350745930_63180(","")

#去掉不符合规范的JSON结尾
us_data = us_data[:-2]
jp_data = jp_data[:-2]
in_data = in_data[:-2]


#JSON转python字典
us_dict = json.loads(us_data)
jp_dict = json.loads(jp_data)
in_dict = json.loads(in_data)

#获取trend的key
trend_data_us = us_dict["data"][0]["trend"]
trend_data_jp = jp_dict["data"][0]["trend"]
trend_data_in = in_dict["data"][0]["trend"]

#获取日期数据，用于x轴 （取2020年 到下标314结束)
x_data_us = trend_data_us["updateDate"][:314]
x_data_jp = trend_data_jp["updateDate"][:314]
x_data_in = trend_data_in["updateDate"][:314]

#获取日期数据，用于y轴
y_data_us = trend_data_us["list"][0]["data"][:314]
y_data_jp = trend_data_jp["list"][0]["data"][:314]
y_data_in = trend_data_in["list"][0]["data"][:314]

#生成图表
line = Line()

#添加x轴数据
line.add_xaxis(x_data_us) #x轴公用使用一个国家数据即可

#添加y轴数据
line.add_yaxis("美国确诊人数",y_data_us,label_opts = LabelOpts(is_show=False))
line.add_yaxis("日本确诊人数",y_data_jp,label_opts = LabelOpts(is_show=False))
line.add_yaxis("印度确诊人数",y_data_in,label_opts = LabelOpts(is_show=False))

#设置全局选项
line.set_global_opts(
    #标题设置
    title_opts=TitleOpts(title="美日印三国确诊人数", pos_left="center", pos_bottom="1%"),
    yaxis_opts=AxisOpts(
        is_show=True,
        axisline_opts=AxisLineOpts(
            is_show=True,
            linestyle_opts={"color": "#333", "width": 2}  # 设置y轴线为深色且加粗
        )
    )
)
#调用render方法
line.render("aaa.html")

#关闭文件对象
f_us.close()
f_jp.close()
f_in.close()